home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / recent / warpup1.lha / WarpUP-WarpOS / Source / tools / showtasks.p < prev    next >
Text File  |  1998-03-01  |  4KB  |  149 lines

  1.         incdir  include:
  2.         incdir  lvo:
  3.  
  4.         include powerpc/ppcmacros.i
  5.         include powerpc/powerpc.i
  6.         include powerpc/tasksppc.i
  7.         include exec/nodes.i
  8.  
  9.         include powerpc_lib.i
  10.         include exec_lib.i
  11.         include dos_lib.i
  12.  
  13.         STRUCTURE       TASKINFO,0
  14.         APTR            TASKINFO_NAME
  15.         ULONG           TASKINFO_ID
  16.         APTR            TASKINFO_LOCATION
  17.         ULONG           TASKINFO_TYPE
  18.         ULONG           TASKINFO_STATE
  19.         ULONG           TASKINFO_PRI
  20.         ULONG           TASKINFO_NICE
  21.         ULONG           TASKINFO_MMUSETUP
  22.         ULONG           TASKINFO_TABLE
  23.         ULONG           TASKINFO_STACKSIZE
  24.         ULONG           TASKINFO_SPLOWER
  25.         ULONG           TASKINFO_SIGALLOC
  26.         ULONG           TASKINFO_SIGWAIT
  27.         ULONG           TASKINFO_SIGRECVD
  28.         LABEL           TASKINFO_SIZE
  29.  
  30.  
  31.         xref    _SysBase
  32.         xref    _DOSBase
  33.         xref    _PowerPCBase
  34.         xref    _LinkerDB
  35.         smalldata
  36.         executable
  37.         escapestr
  38.         version 14
  39.  
  40. start
  41.         prolog  1024
  42.         pushgpr r28-r31
  43.         la      r4,PPCInfo_Tags
  44.         CALLPOWERPC     GetInfo
  45.         lw      r28,Tag_PAGETABLE
  46.         lnk     r29,-TASKINFO_SIZE
  47.         subi    r29,r29,TASKINFO_SIZE
  48.         CALLPOWERPC     LockTaskList
  49.         mr      r31,r3
  50. .loop
  51.         lwz     r30,LN_SUCC(r31)
  52.         tstw    r30
  53.         beq     .done
  54.         lwz     r31,TASKPTR_TASK(r31)
  55.         lwz     r0,LN_NAME(r31)
  56.         stw     r0,TASKINFO_NAME(r29)
  57.         stw     r31,TASKINFO_LOCATION(r29)
  58.         la      r3,customtask
  59.         lwz     r4,TASKPPC_FLAGS(r31)
  60.         bittst  r4,TASKPPCP_SYSTEM
  61.         beq     .nosystem
  62.         la      r3,systemtask
  63. .nosystem
  64.         stw     r3,TASKINFO_TYPE(r29)
  65.         lbz     r4,TC_STATE(r31)
  66.         la      r3,state_run
  67.         cmplwi  r4,TS_RUN
  68.         beq     .statedone
  69.         la      r3,state_ready
  70.         cmplwi  r4,TS_READY
  71.         beq     .statedone
  72.         la      r3,state_wait
  73. .statedone
  74.         stw     r3,TASKINFO_STATE(r29)
  75.         lba     r3,LN_PRI(r31)
  76.         stw     r3,TASKINFO_PRI(r29)
  77.  
  78.         lwz     r4,TASKPPC_FLAGS(r31)
  79.         la      r3,pagedMMU
  80.         bittst  r4,TASKPPCP_BAT
  81.         beq     .nobat
  82.         la      r3,batMMU
  83. .nobat
  84.         stw     r3,TASKINFO_MMUSETUP(r29)
  85.         lwz     r0,TASKPPC_TABLE(r31)
  86.         tstw    r0
  87.         bne     .cont
  88.         mr      r0,r28
  89. .cont
  90.         stw     r0,TASKINFO_TABLE(r29)
  91.         lwz     r0,TASKPPC_STACKSIZE(r31)
  92.         stw     r0,TASKINFO_STACKSIZE(r29)
  93.         lwz     r0,TC_SPLOWER(r31)
  94.         stw     r0,TASKINFO_SPLOWER(r29)
  95.         lwz     r0,TC_SIGALLOC(r31)
  96.         stw     r0,TASKINFO_SIGALLOC(r29)
  97.         lwz     r0,TC_SIGWAIT(r31)
  98.         stw     r0,TASKINFO_SIGWAIT(r29)
  99.         lwz     r0,TC_SIGRECVD(r31)
  100.         stw     r0,TASKINFO_SIGRECVD(r29)
  101.         lwz     r0,TASKPPC_NICE(r31)
  102.         stw     r0,TASKINFO_NICE(r29)
  103.         lwz     r0,TASKPPC_ID(r31)
  104.         stw     r0,TASKINFO_ID(r29)
  105.         la      _d1,infotext
  106.         mr      _d2,r29
  107.         RUN68K_XL       _DOSBase,VPrintf
  108.         mr      r31,r30
  109.         b       .loop
  110. .done
  111.         CALLPOWERPC     UnLockTaskList
  112. .close
  113.         addi    r29,r29,TASKINFO_SIZE
  114.         ulnk    r29,-TASKINFO_SIZE
  115.         popgpr
  116.         epilog
  117.  
  118.         section data
  119.  
  120. PPCInfo_Tags
  121.         dc.l    PPCINFO_PAGETABLE
  122. Tag_PAGETABLE   dc.l    0
  123.         dc.l    0
  124.  
  125. infotext        dc.b    "Task name:                    %s\n"
  126.         dc.b    "Task ID:                      %ld\n"
  127.         dc.b    "Task location:                %08lx\n"
  128.         dc.b    "Task type:                    %s\n"
  129.         dc.b    "Task state:                   %s\n"
  130.         dc.b    "Task priority:                %ld\n"
  131.         dc.b    "NICE value                    %ld\n"
  132.         dc.b    "MMU setup:                    %s\n"
  133.         dc.b    "Page table location:          %08lx\n"
  134.         dc.b    "Stack size:                   %ld\n"
  135.         dc.b    "Stack location (lower bound): %08lx\n"
  136.         dc.b    "Signals allocated:            %08lx\n"
  137.         dc.b    "Signals to wait:              %08lx\n"
  138.         dc.b    "Signals received:             %08lx\n\n"
  139.         dc.b    0
  140.  
  141. customtask      dc.b    "CUSTOM",0
  142. systemtask      dc.b    "SYSTEM",0
  143. state_run       dc.b    "RUNNING",0
  144. state_ready     dc.b    "READY",0
  145. state_wait      dc.b    "WAITING",0
  146. pagedMMU        dc.b    "PAGED MMU SETUP",0
  147. batMMU          dc.b    "BAT SETUP",0
  148.  
  149.